 |

USB05 - USB Error -6911 - (kUSBNotResponding) ÇΔÇÕ
(1998 îN 11 åé 16 ì˙)
Q: ÇΔÇ´Ç®ÇË USB error -6911 (kUSBNotResponding) Ç™î≠ê∂ǵNjÇ∑ÅBÉhÉLÉÖÉÅÉìÉeÅ[ÉVÉáÉìÇ…ÇÊÇÍÇŒÅADZÇÃÉGÉâÅ[ÇÕÉfÉoÉCÉXÇÃÉnÉìÉOÇà”ñ°Ç∑ÇÈÇÊǧÇ≈Ç∑ÅBÉoÉXè„Ç≈î≠ê∂ǵÇΩñ‚ëËÇ…ä÷ǵǃDZÇÃÉGÉâÅ[ÇÕâΩÇà”ñ°Ç∑ÇÈÇÃÇ≈ǵÇÂǧǩÅBÇ‹ÇΩÅAÉNÉâÉXÉhÉâÉCÉoÇÃíÜÇ≈DZÇÃÉGÉâÅ[ÇèàóùÇ∑ÇÈÇ…ÇÕǫǧÇ∑ÇÍnjǢǢÇ≈Ç∑Ç©ÅB
A: kUSBNotRespondingErr ÇÕÅAMacintosh è„ÇÃÉzÉXÉgÉRÉìÉgÉçÅ[ÉâÇ™ÉfÅ[É^ì]ëóÇ 3 âÒééÇ›ÅAǪÇÃåãâ ÇΔǵǃ ACK Ç‹ÇΩÇÕ NAK ÉpÉPÉbÉgÇéÛêMǵǻǩǡÇΩDZÇΔÇ™å¥àˆÇ≈î≠ê∂ǵNjÇ∑ÅBDZÇÃÉGÉâÅ[Ç™ï‘Ç≥ÇÍÇÈëOÇ…ÉzÉXÉgÇÕì‡ïîìIÇ… 3 âÒÇÃééçsÇçsǢNjÇ∑Ç™ÅAUSB ÇÕ USB édólèë (ÉäÉrÉWÉáÉì 1.0ÅAÉZÉNÉVÉáÉì 4.5.2) Ç≈ê‡ñæÇ≥ÇÍǃǢÇÈÇÊǧDžÅADZÇÃÉGÉâÅ[ÇåƒÇ—èoǵå≥Ç…ï‘ǵNjÇ∑ÅBÉpÉPÉbÉgÉåÉxÉãÇÃäœì_Ç©ÇÁÇ∑ÇÈÇΔÅAÉzÉXÉgÉRÉìÉgÉçÅ[ÉâÇÕ 3 ǬÇà IN Ç‹ÇΩÇÕ OUT PID (ÉpÉPÉbÉgID) Çî≠çsǵÅAUSB ä÷êîÇ©ÇÁâûìöÇéÛêMǵǻǩǡÇΩÇΔǢǧDZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅB
í èÌÅADZÇÃÉGÉâÅ[ÇÕÉfÉoÉCÉXÇ™ÉnÉìÉOǵǃǢÇÈDZÇΔÇ™å¥àˆÇ≈î≠ê∂ǵNjÇ∑Ç™ÅAÇΔÇ´Ç®ÇËÅAàÍéûìIÇ»ÉGÉâÅ[Ç™å¥àˆÇ≈éûä‘ÇóvÇ∑ÇÈÉäÉNÉGÉXÉgÇÃèàóùíÜDžDZÇÃñ‚ëËÇ™î≠ê∂Ç∑ÇÈèÍçáǙdžÇËÇ‹Ç∑ (NAK ÇÃêîÇ™ëΩÇ¢ÇΔÅAèÛãµÇ™à´âªÇ∑ÇÈã@âÔLJëΩÇ≠Ç»ÇËÇ‹Ç∑)ÅB
ÇΩÇæÇµÇ±ÇÃèÍçáÇÕñ‚ëËÇâåàÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBÇ‹Ç∏ÅAUSBClearPipeStallByReference ä÷êîÇégǡǃÉpÉCÉvè„ÇÃÉXÉgÅ[ÉãÇÉNÉäÉAÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBÇ≥ÇÁÇ…ÅAÉzÉXÉgÇΔÉfÉoÉCÉXÇçƒìxìØä˙Ç≥ÇπÇÈïKóvǙdžÇËÇ‹Ç∑ (í èÌÇÕÅAClear_Feature Ç‹ÇΩÇÕ Endpoint_Stall)ÅB
éüÇ…ÅAClear_Feature ÉäÉNÉGÉXÉgÇëóêMÇ∑ÇÈó·Çé¶ÇµÇ‹Ç∑ÅBǻǮÅADZÇÃÉRÅ[ÉhÇÕ USB v1.1 Çà USB.h ÉwÉbÉ_Å[ÉtÉ@ÉCÉãÇÃégópÇëOíÒDžǵǃǢNjÇ∑ÅB
pb.pbLength = sizeof(pb);
pb.usbReference = deviceRef;
pb.usbCompletion = yourAsnchHandlerRoutine;
pb.usbStatus = noErr;
pb.pbVersion = kUSBCurrentPBVersion;
pb.usb.cntl.BMRequestType = USBMakeBMRequestType(kUSBOut, kUSBStandard, kUSBEndpoint);
pb.usb.cntl.BRequest = kUSBRqClearFeature;
pb.usb.cntl.WValue = 0; // ÉtÉBÅ[É`ÉÉÅ[ÉZÉåÉNÉ^ - Endpoint ÉXÉgÅ[Éã
pb.usb.cntl.WIndex = endpointNumber;
pb.usbReqCount = 0;
pb.usbBuffer = nil;
pb.usbFlags = 0;
err = USBDeviceRequest(pb);
égópó· 1 Clear_Feature ÉäÉNÉGÉXÉgÇÃÉTÉìÉvÉã
|
USBDeviceRequest Çégǡǃ Clear_Feature ÉäÉNÉGÉXÉgÇëóêMÇ∑ÇÈÇΔÇ´ÇÕÅAusbWIndex ÉtÉBÅ[ÉãÉhÇ… endpointNumber Çê›íËǵǃǮÇ≠ïKóvǙdžÇËÇ‹Ç∑ÅBí èÌÅAendpointNumber ÇÕÉfÉoÉCÉXÇç\ê¨Ç∑ÇÈÇΔÇ´Ç…éÊìæÇ≥ÇÍÇ‹Ç∑ÅBÇ‹ÇΩÅAUSBFindNextAssociatedDescriptor åƒÇ—èoǵÇégǡǃ endpointNumber ÇéÊìæÇ∑ÇÈDZÇΔLJÇ≈Ç´Ç‹Ç∑ÅBÇΩÇΔǶnjÅAèoóÕÉGÉìÉhÉ|ÉCÉìÉgÇ…ÇÕ 0x01ÅAì¸óÕÉGÉìÉhÉ|ÉCÉìÉgÇ…ÇÕ 0x81 ÇÃÇÊǧǻílÇê›íËǵNjÇ∑ÅB
USB v1.1 à»ç~Ç≈ÇÕÅAusbWIndex ÉtÉBÅ[ÉãÉhÇ… endpointNumber Çê›íËÇ∑ÇÈÇΔǢǧóvåèÇä»ó™âªÇ∑ÇÈÇΩÇflé·ä±ÇÃïœçXÇ™ÉCÉìÉvÉäÉÅÉìÉgÇ≥ÇÍNjǵÇΩÅBusbWIndex ÉtÉBÅ[ÉãÉhÇê›íËÇ∑ÇÈë„ÇÌÇËÇ…ÅAkUSBAddressRequest ÉrÉbÉgÇÉZÉbÉgǵǃ usbFlags ÉtÉBÅ[ÉãÉhÇê›íËǵNjÇ∑ÅBUSB Manager v1.1 à»ç~Ç≈ÇÕÅAusbFlags ÉtÉBÅ[ÉãÉhÇÉ`ÉFÉbÉNǵǃ kUSBAddressRequest ÉrÉbÉgÇ™ÉZÉbÉgÇ≥ÇÍǃǢÇÈǩǫǧǩÇämîFǵÅA"usb.cntl.BMRequestType" ÉtÉBÅ[ÉãÉhÇ™ÉGÉìÉhÉ|ÉCÉìÉgÇ…ëŒâûǵǃǢÇÈǩǫǧǩÇÉ`ÉFÉbÉNǵNjÇ∑ÅBÇ‹ÇΩÅADZÇÍÇÁÇÃóvåèÇ™êÆÇ¡ÇƒÇ¢ÇÍÇŒÅAusbReference ÉtÉBÅ[ÉãÉhÇ≈ìnÇ≥ÇÍÇΩÉGÉìÉhÉ|ÉCÉìÉgéQèΔÇ…ëŒâûÇ∑ÇÈ usbWIndex ÉtÉBÅ[ÉãÉhÇ… endpointNumber ÇèëÇ´çûǛNjÇ∑ÅBéüÇÃÉTÉìÉvÉãÉRÅ[ÉhÇÕÅAUSB v1.1 à»ç~Ç…â¡Ç¶ÇÁÇÍÇΩDZÇÃÇÊǧǻïœçXÇãÔëÃìIÇ…é¶ÇµÇƒÇ¢Ç‹Ç∑ÅBǻǮÅAégópó· 1 Ç…é¶ÇµÇΩÉRÅ[ÉhLJ USB v1.1 à»ç~ÇΔÇΔLJDžê≥èÌÇ…ìÆçÏǵNjÇ∑ÅBë∂ç›Ç∑ÇÈ Mac OS USB ÇÃÉoÅ[ÉWÉáÉìÇîªíËÇ∑ÇÈÇ…ÇÕÅAGestalt ÉZÉåÉNÉ^ 'usbv' ÇégópǵNjÇ∑ÅB
pb.pbLength = sizeof(pb);
pb.usbReference = endpointRef;
pb.usbCompletion = yourAsnchHandlerRoutine;
pb.usbStatus = noErr;
pb.pbVersion = kUSBCurrentPBVersion;
pb.usb.cntl.BMRequestType =
USBMakeBMRequestType(kUSBOut, kUSBStandard, kUSBEndpoint);
pb.usb.cntl.BRequest = kUSBRqClearFeature;
pb.usb.cntl.WValue = 0; // ÉtÉBÅ[É`ÉÉÅ[ÉZÉåÉNÉ^ - Endpoint ÉXÉgÅ[Éã
pb.usbReqCount = 0;
pb.usbBuffer = nil;
pb.usbFlags = kUSBAddressRequest;
err = USBDeviceRequest(pb);
égópó· 2 USB 1.1 à»ç~Ç…ëŒâûÇ∑ÇÈë„ë÷ Clear_Feature request
|
ǻǮÅAÉzÉXÉgÇ™ÉfÉoÉCÉXÇΔí êMÇçsǡǃǢÇÈÇΔÇ´Ç… USB ÉPÅ[ÉuÉãÇ™ÇÕÇ∏ÇÍÇΩèÍçáDžLJ kUSBNotRespondingErr Ç™î≠ê∂Ç∑ÇÈâ¬î\ê´Ç™Ç†ÇËÇ‹Ç∑ÅBDZÇÃÉGÉâÅ[Ç™î≠ê∂ǵÇΩÇΔÇ´ÇÕÅAClear_Feature ÉäÉNÉGÉXÉgÇëóêMǵǃÇ≠ÇæÇ≥Ç¢ÅBÉfÉoÉCÉXÇÃÉPÅ[ÉuÉãÇ™ÇÕÇ∏ÇÍǃǢÇÈÇΔÅAUSBDeviceRequest ÇÕï Çà -6911 ÉGÉâÅ[Çï‘Ç∑DZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅB
-- Rich Kubota
Worldwide Developer Technical Support
|
 |